package logic

import (
	"core/command"
	"core/component/logger"
)

// 玩家进入online
func (gc *GatewayClient) clientInOnlineHandler(msgId uint16, data []byte) {
	msgRecv := &command.ClientInOnline{}
	err := gc.tcpClient.Router.UnMarshal(data, msgRecv)
	if err != nil {
		logger.Errorf("recv data:%v msg:%v", data, msgRecv)
		return
	}
	WorldGetMe().clientInOnline(msgRecv.PlayerId, msgRecv.GatewayIp, msgRecv.RemoteAddr,
		gc.serverID, msgRecv.IsNewPlayer, msgRecv.IsVisitor)
	logger.Infof("玩家登陆online成功 %v", msgRecv.PlayerId)
}

// 玩家退出online
func (gc *GatewayClient) clientOutOnlineHandler(msgId uint16, data []byte) {
	msgRecv := &command.ClientOutOnline{}
	err := gc.tcpClient.Router.UnMarshal(data, msgRecv)
	if err != nil {
		logger.Errorf("recv data:%v msg:%v", data, msgRecv)
		return
	}
	WorldGetMe().clientOutOnline(msgRecv.PlayerId)
}

func (gc *GatewayClient) gatewayForwardPacketHandler(msgID uint16, data []byte) {
	msg := &command.GatewayForwardPacket{}
	err := gc.tcpClient.Router.UnMarshal(data, msg)
	if err != nil {
		logger.Errorf("recv data:%v msg:%v", data, msg)
		return
	}
	gc.msgPacketHandle(msg.Userid, msg.Data)
}
